home *** CD-ROM | disk | FTP | other *** search
- /*
- ** -----------------------------------------------
- ** $VER: MUIFuzzyShadows.rexx V1.03 (24 May 2001)
- ** ©2000-2001 Michael Merkel
- ** -----------------------------------------------
- */
-
- SIGNAL ON SYNTAX
- SIGNAL ON HALT
- SIGNAL ON BREAK_C
- OPTIONS RESULTS
-
- /*
- TRACE ALL
- */
-
- /*
- ** first of all add the needed libraries
- */
-
- IF ~show("L","rmh.library")
- THEN IF ~AddLib("rmh.library", 0, -30) THEN EXIT
-
- IF ~show("L","rxasl.library")
- THEN IF ~AddLib("rxasl.library", 0, -30) THEN EXIT
-
- IF ~show("L","rxmui.library")
- THEN IF ~AddLib("rxmui.library", 0, -30) THEN EXIT
-
- /*
- ** DEBUG MODE!!!
- */
-
- Call rxMuiOpt("DEBUGMODE SHOWERR")
-
- /*
- ** Make sure rexx support is opened
- */
- IF ~SHOW('L','rexxsupport.library') THEN
- CALL ADDLIB('rexxsupport.library',0,-30)
- IF ~SHOW('L','softlogik:libs/slarexxsupport.library') THEN
- CALL ADDLIB('softlogik:libs/slarexxsupport.library',0,-30)
-
- IF ~SHOW('P','PAGESTREAM')
- THEN DO
- CALL ShowRequester("Start PageStream first!", "Of course...")
- Exit
- END
- ADDRESS 'PAGESTREAM'
-
- pgsInstallDir = 'PageStream:Scripts/MUIFuzzyShadows'
- pgsName = 'MUIFuzzyShadows'
- pgsVersion = 'V1.03'
- pgsAuthor = 'Michael Merkel'
- pgsCopy = '©2000-01 Michael Merkel'
- pgsLVer = '1.00'
- pgsDate = '05/24/2001'
- pgsPic = pgsInstallDir || '/MUIFuzzyShadows.pic'
- standardPrefs = pgsInstallDir || '/MUIFuzzyShadows.prefs'
-
- PARSE ARG doItQuick prefsFile
-
- fileName = STRIP(filename)
- fileName = STRIP(filename, 'B', "'")
- fileName = STRIP(filename, 'B', '"')
-
- /*
- ** default settings
- */
-
- Call SetDefaultPrefs
-
- /*
- ** do some checks before
- */
-
- Call CheckRoutines
-
- /*
- ** load prefs
- */
-
- Call LoadPrefs(standardPrefs)
-
- /*
- ** if not in quick mode do the setting requester
- ** save the prefs afterwards and quit or go on
- */
-
- IF (Upper(DoItQuick) ~= 'QUICK')
- THEN DO
- Call BuildGUI
- muiBusyWinOpen = FALSE
-
- /*
- ** open the window and check if it is
- */
-
- Call Set("muiWin", "OPEN", 1)
- Call GetAttr("muiWin", "OPEN", "o")
- IF (o = 0)
- THEN DO
- Say "can't open window"
- EXIT
- END
- Call PrefsWindowSet()
- Call EventLoop()
- Call PrefsWindowGet()
- Call Set("muiWin", "OPEN", 0)
- Call DoFuzzyShadows()
- Call CleanUp()
- END
- ELSE DO
- Call BuildGUI
- Call DoFuzzyShadows()
- Call CleanUp()
- END
-
- Exit
-
- /* /// DoFuzzyShadows()
- */
- DoFuzzyShadows:
- /*
- ** Draw the fuzzy shadows
- ** ----------------------
- */
-
- offX = p2d(prefs._offX, measure)
- offY = p2d(prefs._offY, measure)
-
- startStroke = p2d(prefs._startStroke, measure)
- endStroke = p2d(prefs._endStroke, measure)
-
- /*
- ** now run over all selected objects and do the trick
- */
-
- busyReq = BusyOpen( "Doing Fuzzy Shadows...", idCount-1, prefs.num-1 )
-
- IF (prefs.hideWin = 1)
- THEN 'HIDEWINDOW'
-
- DO objNr = 0 TO (idCount - 1)
-
- /*
- ** add shadow to object
- */
-
- 'SELECTOBJECT NONE'
- Call MakeShadow(allObjs.objNr)
- END
-
- Call CleanUp(busyReq)
- Exit
- /* /// */
- /* /// MakeShadow(original)
- */
- MakeShadow:
- /*
- ** Add fuzzy shadows to an object with given id
- ** --------------------------------------------
- */
-
- PARSE ARG original
-
- 'GETOBJECT TYPE objType OBJECTID '|| original
-
- IF (objType = 11) | (objType = 14)
- THEN mode = 'TEXT'
- ELSE mode = 'OBJECT'
-
- 'REFRESH OFF'
-
- IF (objType = 12) & (prefs.doPicAsBox = 1)
- THEN Call CopyAsBox(original)
- ELSE DO
- 'DUPLICATE OFFSET 0 0 OBJECTID '|| original
- END
- 'GETOBJECT'
- newOriginal = RESULT
-
- 'TRANSFORM 0 OFFSET "'|| offX||measure ||'" "'|| offY||measure||'" OBJECTID '|| newOriginal
-
- pcolor = prefs.color
- IF (mode = 'TEXT')
- THEN DO
- 'SELECTTEXT INOBJECT '|| newOriginal
- 'SELECTTEXT ALL'
-
- 'BEGINCOMMANDCAPTURE'
- 'STROKED OFF TEXT'
- 'FILLED ON TEXT'
- 'SETFILL BASIC FILL'
- 'SETFPATTERN NONE FILL'
- 'SETCOLORCOUNT 1 FILL TEXT'
- 'SETCOLORSTYLE "'|| colorPGS.pcolor ||'" COLORNUMBER 0 FILL TEXT'
- 'SETCOLORTINT '|| prefs.startTint ||'% COLORNUMBER 0 FILL TEXT'
- 'ENDCOMMANDCAPTURE'
- END
- ELSE DO
- 'STROKED OFF OBJECT OBJECTID '|| newOriginal
- 'FILLED ON OBJECT OBJECTID '|| newOriginal
-
- 'SETFILL BASIC FILL OBJECT OBJECTID '|| newOriginal
- 'SETFPATTERN NONE FILL OBJECT OBJECTID '|| newOriginal
- 'SETCOLORCOUNT 1 FILL OBJECT OBJECTID '|| newOriginal
- 'SETCOLORSTYLE "'|| colorPGS.pcolor ||'" COLORNUMBER 0 FILL OBJECT OBJECTID '|| newOriginal
- 'SETCOLORTINT '|| prefs.startTint ||'% COLORNUMBER 0 FILL OBJECT OBJECTID '|| newOriginal
- END
-
- DO k=0 TO prefs.num-1
-
- IF (BusyHandle("test", (idCount), objNr, (prefs.num-1), k) = 1)
- THEN DO
- Call CleanUp(busyReq)
- EXIT
- END
-
- currentStroke = startStroke + (endStroke - startStroke) * k / (prefs.num - 1)
- currentTint = prefs.startTint + (prefs.endTint - prefs.startTint) * k / (prefs.num - 1)
-
- 'DUPLICATE OFFSET "0" "0" OBJECTID '|| newOriginal
- 'GETOBJECT'
- dupeId.k = RESULT
-
- IF (mode = 'TEXT')
- THEN DO
- 'SELECTTEXT INOBJECT '|| dupeId.k
- 'SELECTTEXT ALL'
- 'BEGINCOMMANDCAPTURE'
- 'FILLED OFF TEXT'
- 'STROKED ON TEXT'
- 'SETSTROKECOUNT 1 TEXT'
- 'SETSTROKE SOLID STROKENUMBER 0 TEXT'
- 'SETSTROKEWEIGHT '|| currentStroke||measure||' STROKENUMBER 0 TEXT'
- 'SETCOLORCOUNT 1 STROKENUMBER 0 TEXT'
- 'SETCOLORSTYLE "'|| colorPGS.pcolor ||'" COLORNUMBER 0 STROKENUMBER 0 TEXT'
- 'SETCOLORTINT '|| currentTint ||'% COLORNUMBER 0 STROKENUMBER 0 TEXT'
- 'ENDCOMMANDCAPTURE'
- END
- ELSE DO
- 'FILLED OFF OBJECT OBJECTID '|| dupeId.k
- 'STROKED ON OBJECT OBJECTID '|| dupeId.k
- 'SETSTROKE SOLID STROKENUMBER 0 OBJECT OBJECTID '|| dupeId.k
- 'SETSTROKEWEIGHT '|| currentStroke||measure||' STROKENUMBER 0 OBJECT OBJECTID '|| dupeId.k
- 'SETCOLORSTYLE "'|| colorPGS.pcolor ||'" COLORNUMBER 0 STROKENUMBER 0 OBJECT OBJECTID '|| dupeId.k
- 'SETCOLORTINT '|| currentTint ||'% COLORNUMBER 0 STROKENUMBER 0 OBJECT OBJECTID '|| dupeId.k
- END
- 'SENDTOBACK OBJECTID '|| dupeId.k
- END
- 'SENDTOBACK'
-
- 'SELECTOBJECT NONE'
-
- DO k=0 TO prefs.num-1
- 'SELECTOBJECT ADD OBJECTID '|| dupeId.k
- END
- 'SELECTOBJECT ADD OBJECTID 'newOriginal
-
- 'GROUP BEST'
- 'BRINGTOFRONT OBJECTID '|| original
- 'SELECTOBJECT ADD OBJECTID 'original
- 'GROUP BEST'
- Return
- /* /// */
-
- /* ---------------------------------------------------------------- */
-
- /* /// CleanUp()
- */
- CleanUp:
- /*
- ** Close busy requester, clean up and leave program
- ** ------------------------------------------------
- */
-
- IF (muiBusyWinOpen = TRUE)
- THEN DO
- Call BusyClose()
- END
-
- /*
- ** reveal the window
- */
- IF (prefs.hideWin = 1)
- THEN 'REVEALWINDOW WINDOW "'winname'"'
-
- 'REFRESH ON'
- 'REFRESHWINDOW'
- EXIT
- /* /// */
- /* /// CopyAsBox(copyID)
- */
- CopyAsBox:
- /*
- ** CopyAsBox
- ** ---------
- */
-
- PARSE ARG copyID
-
- 'GETPICTURE POSITION copyPos OBJECTID '|| copyID
-
- 'DRAWBOX '|| copyPos.left copyPos.top copyPos.right copyPos.bottom''
- Return
- /* /// */
- /* /// GUIGadgetPressed(which, what1, what2)
- */
- GUIGadgetPressed:
- /*
- ** Gadget reaction routine
- ** -----------------------
- */
-
- PARSE ARG which, what1, what2
-
- SELECT
- WHEN (which = g_cancel)
- THEN DO
- Say 'User Canceled'
- Call Cleanup(busyReq)
- END
-
- WHEN (which = g_OK)
- THEN DO
- Say 'doing it...'
- WriteLN(ca, ' CLOSE ')
- Call Close(ca)
- Call DoFuzzyShadows
- Call CleanUp
- EXIT
- END
-
- OTHERWISE
- NOP
- END
- Return
- /* /// */
- /* /// OpenBusy2(title, total)
- */
- OpenBusy2:
- /*
- ** Open the busy requester
- ** -----------------------
- */
-
- PARSE ARG title,total
- 'OPENBUSYREQUESTER DELAYEDOPEN ENABLED MESSAGE "'title'" THERMOMETER ENABLED ABORT ENABLED TOTAL 'total' CURRENT 0'
- ret = RESULT
- Return ret
- /* /// */
-
- /* /// BuildGUI()
- */
- BuildGUI:
-
- /*
- ** Create the rxMUI GUI
- ** --------------------
- */
-
- /*
- ** first of all the let's define the application object
- */
-
- muiApp.Title = pgsName
- muiApp.Version = "$VER: "|| pgsVersion ||' ('|| pgsDate ||')'
- muiApp.Copyright = pgsCopy
- muiApp.Author = pgsAuthor
- muiApp.Description = "Create so called fuzzy shadows"
- muiApp.Base = pgsName
- muiApp.diskobject = pgsName
- muiApp.ctrlc = 1
- muiApp.menustrip = "muiMenuStrip"
- muiApp.subwindow = "muiWin"
-
- /*
- ** let's define the window
- */
- muiWin.ID = "MAIN"
- muiWin.Title = pgsName pgsVersion ||' ('|| pgsDate ||') - '|| pgsCopy
- muiWin.Contents = "muiMainGroup"
-
-
- /*
- ** define the menu
- */
- muiMenuStrip.0 = "muiMenuProject"
- muiMenuProject.Title = "Project"
- muiMenuProject.Class = "MENU"
- muiMenuProject.0 = MenuItem("muiMenuAbout", "About...", "?")
- muiMenuProject.1 = MenuItem("muiMenuAboutrxMUI","About RxMUI..." )
- muiMenuProject.2 = MenuItem("muiMenuAboutMUI", "About MUI..." )
- muiMenuProject.3 = MenuItem("", "BAR" )
- muiMenuProject.4 = MenuItem("muiMenuQuit", "Quit", "Q")
- muiMenuStrip.1 = "muiMenuPrefs"
- muiMenuPrefs.Title = "Prefs"
- muiMenuPrefs.Class = "MENU"
- muiMenuPrefs.0 = MenuItem("muiMenuPrefsMUI", "MUI...", "M")
- muiMenuPrefs.1 = MenuItem("", "BAR")
- muiMenuPrefs.2 = MenuItem("muiMenuLoad", "Load", "L")
- muiMenuPrefs.3 = MenuItem("muiMenuSave", "Save", "S")
- muiMenuPrefs.4 = MenuItem("muiMenuSaveAs", "Save As...", "A")
- res = NewObj("MENUSTRIP", "muiMenuStrip")
- IF (res ~= 0)
- THEN Call Err(res)
-
- /*
- ** let's define the window contents
- */
-
- tab = 0
-
- muiMainGroup.tab = "muiGroup00"; tab = tab + 1
- muiGroup00.Class = "GROUP"
- muiGroup00.Horiz = 1
- muiGroup00.Frame = "GROUP"
- muiGroup00.Background = "FILLBACK"
- muiGroup00.0 = HSpace()
- muiGroup00.1 = "muiBITMAP"
- muiBITMAP.Class = "BITMAP"
- muiBITMAP.Precision = "ICON"
- muiBITMAP.File = pgsPic
- muiBITMAP.InputMode = "RelVerify"
- muiBITMAP.Frame = "BUTTON"
- muiGroup00.2 = Label(ParseText('%c%b%8'|| pgsName pgsVersion ||'%n\n'|| pgsCopy))
- muiGroup00.3 = HSpace()
- muiMainGroup.tab = "muiGroup0"; tab = tab + 1
- muiGroup0.Class = "GROUP"
- muiGroup0.Frame = "GROUP"
- muiGroup0.Horiz = 1
- muiGroup0.HorizSpacing = 1
- muiGroup0.0 = Label("Number of steps: ")
- muiGroup0.1 = "g_num"
- g_num.Class = "SLIDER"
- g_num.Min = 1
- g_num.Max = 100
- g_num.Value = 0
- muiGroup0.2 = HSpace(5)
- muiGroup0.3 = Label("Color to use: ")
- muiGroup0.4 = "g_color"
- chooserLabels = ''
- DO k = 0 TO colorCount-1
- chooserLabels = chooserLabels || '|' || colorPGS.k
- END
- chooserLabels = SubStr(chooserLabels, 2)
- g_color.Class = "CYCLE"
- g_color.ControlChar = "c"
- g_color.Entries = chooserLabels
- g_color.Horiz = 1
- g_color.Selected = 0
-
- muiMainGroup.tab = "muiGroup1"; tab = tab + 1
- muiGroup1.class = "GROUP"
- muiGroup1.columns = 6
- muiGroup1.0 = HSpace(1)
- muiGroup1.1 = VSpace()
- muiGroup1.2 = HSpace(1)
- muiGroup1.3 = VSpace()
- muiGroup1.4 = HSpace(1)
- muiGroup1.5 = VSpace()
- muiGroup1.6 = Label("Stroke start:")
- muiGroup1.7 = String("g_startStroke")
- muiGroup1.8 = Label("Tint start: %")
- muiGroup1.9 = String("g_startTint")
- muiGroup1.10 = Label("Shadow offset X:")
- muiGroup1.11 = String("g_offsetX")
- muiGroup1.12 = Label("Stroke end:")
- muiGroup1.13 = String("g_endStroke")
- muiGroup1.14 = Label("Tint end: %")
- muiGroup1.15 = String("g_endTint")
- muiGroup1.16 = Label("Shadow offset Y:")
- muiGroup1.17 = String("g_offsetY")
-
- muiMainGroup.tab = VSpace(); tab = tab + 1
- muiMainGroup.tab = "muiGroup21"; tab = tab + 1
- muiGroup21.Class = "GROUP"
- muiGroup21.Frame = "GROUP"
- muiGroup21.Columns = 3
- muiGroup21.0 = HSpace()
- muiGroup21.1 = "muiGroupBox"
- muiGroupBox.Class = "GROUP"
- muiGroupBox.Columns = 2
- muiGroupBox.0 = CheckMark("g_box", 0)
- muiGroupBox.1 = Label("treat pictures as box", "LEFT")
- muiGroupBox.2 = CheckMark("g_hideWin", 0)
- muiGroupBox.3 = Label("hide window", "LEFT")
- muiGroup21.2 = HSpace()
- muiMainGroup.tab = VSpace(); tab = tab + 1
- muiMainGroup.tab = "muiButtonGroup"; tab = tab + 1
- muiButtonGroup.class = "GROUP"
- muiButtonGroup.columns = 2
- muiButtonGroup.0 = Button("G_OK", "_Ok" )
- muiButtonGroup.1 = Button("G_CANCEL", "_Cancel")
-
- /*
- ** create all
- */
- Call NewObj("APPLICATION","muiApp")
-
- /*
- ** window close gadget means quit...
- */
- Call Notify("muiWin", "CLOSEREQUEST", 1, "muiApp", "RETURNID", "QUIT")
-
- /*
- ** Ok and Cancel Buttons...
- */
- Call Notify("G_CANCEL", "PRESSED", 0, "muiApp", "RETURNID")
- Call Notify("G_OK", "PRESSED", 0, "muiApp", "RETURNID")
-
- /*
- ** Menu events...
- */
- Call Notify("muiMenuLoad", "MENUTRIGGER", "EVERYTIME", "muiApp", "RETURNID")
- Call Notify("muiMenuSave", "MENUTRIGGER", "EVERYTIME", "muiApp", "RETURNID")
- Call Notify("muiMenuSaveAs", "MENUTRIGGER", "EVERYTIME", "muiApp", "RETURNID")
- Call Notify("muiMenuPrefsMUI", "MENUTRIGGER", "EVERYTIME", "muiApp", "OpenConfigWindow")
- Call Notify("muiMenuAbout", "MENUTRIGGER", "EVERYTIME", "muiApp", "ABOUT", "muiWin")
- Call Notify("muiMenuAboutrxMUI","MENUTRIGGER", "EVERYTIME", "muiApp", "ABOUTRXMUI", "muiWin")
- Call Notify("muiMenuAboutMUI", "MENUTRIGGER", "EVERYTIME", "muiApp", "ABOUTMUI", "muiWin")
- Call Notify("muiMenuQuit", "MENUTRIGGER", "EVERYTIME", "muiApp", "RETURNID")
-
- /*
- ** Button click -> about
- */
- Call Notify("muiBitmap", "PRESSED", 0, "muiApp", "ABOUT", "muiWin")
-
- /*
- ** cycle chains...
- */
- Set("g_num", "CYCLECHAIN", 1)
- Set("g_color", "CYCLECHAIN", 1)
- Set("g_startStroke", "CYCLECHAIN", 1)
- Set("g_startTint", "CYCLECHAIN", 1)
- Set("g_offsetX", "CYCLECHAIN", 1)
- Set("g_endStroke", "CYCLECHAIN", 1)
- Set("g_endTint", "CYCLECHAIN", 1)
- Set("g_offsetY", "CYCLECHAIN", 1)
- Set("g_box", "CYCLECHAIN", 1)
- Set("g_hideWin", "CYCLECHAIN", 1)
- Set("g_ok", "CYCLECHAIN", 1)
- Set("g_cancel", "CYCLECHAIN", 1)
-
-
- /*
- ** Set active gadget at start
- */
- Call Set("muiWin", "ActiveObject", "G_OK")
-
- Return
- /* /// */
- /* /// CheckPrefsVersion(fileName)
- */
- CheckPrefsVersion:
- /*
- ** Check if prefsfile is compatible
- ** --------------------------------
- */
-
- PARSE ARG fileName
-
- IF (fileName = "")
- THEN fileName = standardPrefs
-
- ok = Open('Prefs', fileName, 'R')
- IF (ok = 1)
- THEN DO
- dummy = ReadLn('Prefs')
- cl = Close('Prefs')
-
- IF ( (Left(dummy, Length(pgsName)) = pgsName) | (Left(dummy, 3) = 'FSP') ) & (Right(dummy,4) >= pgsLVer)
- THEN Return 0
- END
- RETURN 1
- /* /// */
- /* /// CheckRoutines()
- */
- CheckRoutines:
-
- /*
- ** first check if one or more objects are selected
- */
-
- 'GETSELECTEDOBJECTS IDLIST allObjs'
- idCount = RESULT
-
- /*
- ** no object selected? -> error
- */
-
- IF (RC > 0)
- THEN DO
- Call ShowRequester('Select one or more objects first!', 'I will!')
- EXIT
- END
-
- /*
- ** get page and window names
- */
-
- 'CURRENTPAGE'
- page = RESULT
-
- 'CURRENTWINDOWPATH'
- winname = RESULT
-
- /*
- ** get colors
- */
-
- 'GETCOLORS colorPGS'
- colorCount = RESULT
- Return
- /* /// */
- /* /// err(res)
- */
- err:
- PARSE ARG res
-
- ADDRESS 'PAGESTREAM'
- 'LOCKINTERFACE FALSE'
- 'REFRESH ON'
- 'REFRESHWINDOW WINDOW "'|| oldWinName ||'"'
- ''defmeasure''
- Call pgsRequester(GetRXmuiString(res) "in line" sigl-1)
- Exit
- /* /// */
- /* /// EventLoop()
- */
- EventLoop:
- /*
- ** this is the standard cycle to handle an application
- */
- ctrl_C = 2**12
- s = 0
- DO FOREVER
- Call Handle("muiApp", "H", s)
- DO i = 0 TO (H.num - 1)
- id = H.i
- SELECT
- WHEN (id = "QUIT") | (id = "G_CANCEL")
- THEN Call CleanUp
- WHEN (id = "MUIMENULOAD")
- THEN DO
- Call LoadPrefsAs()
- Call PrefsWindowSet()
- END
- WHEN (id = "MUIMENUSAVE")
- THEN DO
- Call PrefsWindowGet()
- Call SavePrefs()
- END
- WHEN (id = "MUIMENUSAVEAS")
- THEN DO
- Call PrefsWindowGet()
- Call SavePrefsAs()
- END
- WHEN (id = "MUIMENUQUIT")
- THEN DO
- IF (ShowRequester('Really Quit?', 'No|Yes') = 0)
- THEN Call CleanUp
- END
- WHEN (id = "G_OK")
- THEN Return
-
- OTHERWISE Say h.i
- END
- END
- s = Wait( OR(h.signals, ctrl_C) )
- IF (AND(s, ctrl_C) ~= 0)
- THEN EXIT
- END
- EXIT
- /* /// */
- /* /// GetFileName(prefName)
- */
- GetFileName:
- PARSE ARG fileName,text
- file = FilePart(fileName)
- path = PathPart(fileName)
-
- 'GETFILE TITLE "'|| text ||'" PATH "'|| path ||'" FILE "'|| file ||'"'
- IF (RC = 0)
- THEN fileName = RESULT
- ELSE fileName = 0
- Return fileName
- /* /// */
- /* /// Halt
- */
- Halt:
- BREAK_C:
- EXIT
- /* /// */
- /* /// LoadPrefs(fileName)
- */
- LoadPrefs:
- /*
- ** load the preferences file
- ** -------------------------
- */
-
- PARSE ARG fileName
- IF (fileName = "")
- THEN fileName = standardPrefs
-
- say 'loading 'fileName' ...'
-
- /*
- ** Check the version of the prefs file
- */
-
- IF (CheckPrefsVersion(fileName) ~= 0)
- THEN DO
- Call ShowRequester('Prefsfile not found or not valid! Using defaults.', 'Hmm...')
- Return
- END
- ELSE DO
- Call Open('Prefs', fileName, 'R')
- Say 'Reading prefs file...'
- dummy = ReadLN('Prefs')
- DO xx = 1 to 100
- command = ReadLn('Prefs')
- INTERPRET command
- IF EOF('Prefs') THEN LEAVE
- END
- Call Close('Prefs')
- END
- RETURN
- /* /// */
- /* /// LoadPrefsAs()
- */
- LoadPrefsAs:
- /*
- ** Load Prefs with selectable name
- ** -------------------------------
- */
-
- prefName = GetFileName(currentPrefs, 'Load Preferences...')
- IF (prefName ~= 0)
- THEN DO
- currentPrefs = prefName
- Call LoadPrefs(currentPrefs)
- END
- Return
- /* /// */
- /* /// pgsRequester(text)
- */
- pgsRequester:
- PARSE ARG meldung
-
- /*
- ** Convert to multiple lines
- */
-
- _num = 1
- mLines.num = _num
- mLines.0 = meldung
-
- DO FOREVER
- _prev = _num-1
- pos = Index(mLines._prev, '|')
- IF (pos = 0)
- THEN LEAVE
-
- mLines._num = SubStr(mLines._prev, pos+1)
- mLines._prev = Left(mLines._prev, pos-1)
- _num = _num + 1
- END
- mLines.num = _num
-
- l = 0
- DO kk = 0 TO mLines.num - 1
- IF (l < Length(mLines.kk) * 8)
- THEN l = Length(mLines.kk) * 8
- Say mLines.kk
- END
-
- ADDRESS "PAGESTREAM"
- 'ALLOCAREXXREQUESTER "error inside '|| pgsName ||'" '|| (l+20) (40 + mLines.num * 10)
- reqhandle = RESULT
-
- 'ADDAREXXGADGET '|| reqhandle ||' EXIT '|| (l/2 - 25) (20 + mLines.num * 10) ||' 50 LABEL "_Ok"'
- dummy = RESULT
-
- DO kk = 0 TO mLines.num - 1
- 'ADDAREXXGADGET 'reqhandle' TEXT 10 ' (10 + kk*10) l 'STRING "'mLines.kk'"'
- END
-
- 'DOAREXXREQUESTER 'reqhandle
- dummy = RESULT
-
- 'FREEAREXXREQUESTER 'reqhandle
- RETURN
- /* /// */
- /* /// PrefsWindowGet()
- */
- PrefsWindowGet:
- Call GetAttr("g_num", "VALUE", "prefs.num")
- Call GetAttr("g_color", "ACTIVE", "prefs.color")
- Call GetAttr("g_startStroke", "CONTENTS", "prefs._startStroke")
- Call GetAttr("g_endStroke", "CONTENTS", "prefs._endStroke")
- Call GetAttr("g_startTint", "CONTENTS", "prefs.startTint")
- Call GetAttr("g_endTint", "CONTENTS", "prefs.endTint")
- Call GetAttr("g_offsetX", "CONTENTS", "prefs._offX")
- Call GetAttr("g_offsetY", "CONTENTS", "prefs._offY")
- Call GetAttr("g_box", "SELECTED", "prefs.doPicAsBox")
- Call GetAttr("g_hideWin", "SELECTED", "prefs.hideWin")
- Return
- /* /// */
- /* /// PrefsWindowSet()
- */
- PrefsWindowSet:
- Call Set("g_num", "VALUE", prefs.num)
- Call Set("g_color", "ACTIVE", prefs.color)
- Call Set("g_startStroke", "CONTENTS", prefs._startStroke)
- Call Set("g_endStroke", "CONTENTS", prefs._endStroke)
- Call Set("g_startTint", "CONTENTS", prefs.startTint)
- Call Set("g_endTint", "CONTENTS", prefs.endTint)
- Call Set("g_offsetX", "CONTENTS", prefs._offX)
- Call Set("g_offsetY", "CONTENTS", prefs._offY)
- Call Set("g_box", "SELECTED", prefs.doPicAsBox)
- Call Set("g_hideWin", "SELECTED", prefs.hideWin)
- Return
- /* /// */
- /* /// SavePrefs(fileName)
- */
- SavePrefs:
- /*
- ** save the preferences file
- ** -------------------------
- */
-
- PARSE ARG filename
- IF (fileName = "")
- THEN fileName = standardPrefs
-
- say 'saving 'fileName' ...'
-
- okOpen = Open('Prefs', fileName, 'W')
- IF (okOpen = 1)
- THEN DO
- OPTIONS FAILAT 11
- Say 'writing prefs "'|| fileName ||'"...'
- WriteLN('Prefs', pgsName pgsVersion)
-
- Call WritePrefsNameValue('Prefs', 'prefs.num')
- Call WritePrefsNameValue('Prefs', 'prefs._startStroke')
- Call WritePrefsNameValue('Prefs', 'prefs._endStroke')
- Call WritePrefsNameValue('Prefs', 'prefs.startTint')
- Call WritePrefsNameValue('Prefs', 'prefs.endTint')
- Call WritePrefsNameValue('Prefs', 'prefs.doPicAsBox')
- Call WritePrefsNameValue('Prefs', 'prefs.color')
- Call WritePrefsNameValue('Prefs', 'prefs._offX')
- Call WritePrefsNameValue('Prefs', 'prefs._offY')
- Call WritePrefsNameValue('Prefs', 'prefs.hideWin')
-
- WriteLN('Prefs', '/* END OF Prefsfile for '|| pgsName pgsVersion ||' ('|| pgsDate ||') */')
- OPTIONS FAILAT 10
- Call Close('Prefs')
- END
- ELSE DO
- Say 'Error writing prefs file "'|| fileName ||'"'
- Call ShowRequester('ERROR writing prefs file '|| fileName, 'Damn!')
- END
- RETURN
- /* /// */
- /* /// SavePrefsAs()
- */
- SavePrefsAs:
- /*
- ** Save Prefs with selectable name
- ** -------------------------------
- */
-
- prefName = GetFileName(currentPrefs, 'Save Preferences As...')
- IF (prefName ~= 0)
- THEN DO
- currentPrefs = prefName
- Call SavePrefs(currentPrefs)
- END
- Return
- /* /// */
- /* /// SetDefaultPrefs()
- */
- SetDefaultPrefs:
-
- /*
- ** defaults needed in the program
- */
-
- measure = 'pt'
- tf.0 = 'FALSE'
- tf.1 = 'TRUE'
- Progress = 0
- currentPrefs = standardPrefs
-
- prefs.num = 5
- prefs._startStroke = '1pt'
- prefs._endStroke = '5pt'
- prefs.startTint = 50
- prefs.endTint = 10
- prefs.doPicAsBox = 0
- prefs.color = 0
- prefs._offX = '1cm'
- prefs._offY = '1cm'
- prefs.hideWin = 0
- Return
- /* /// */
- /* /// ShowRequester(question, knobs)
- */
- ShowRequester:
- /*
- ** Show requester with some gadgets
- ** --------------------------------
- */
- PARSE ARG question,knobs
- Say question
- reqData = EasyRequest(question, pgsNAme, knobs)
- say reqData
- Return reqData
- /* /// */
- /* /// WritePrefsNameValue(file, name)
- */
- WritePrefsNameValue:
- /*
- ** write parameter with value in file
- ** ----------------------------------
- */
-
- PARSE ARG file,name
-
- Interpret "saveSTR = '"|| name ||" = ""'"|| name ||"'""'"
- WriteLN(file, saveSTR)
- Return
- /* /// */
-
- /* /// BusyClose()
- */
- BusyClose:
- IF (muiBusyWinOpen = TRUE)
- THEN DO
- Call GetAttr("muiBusyWin", "OPEN", "o")
- IF (o ~= 0)
- THEN Call Set("muiBusyWin", "OPEN", 0)
- Call Dispose("muiBusyWin")
- muiBusyWinOpen = FALSE
- END
- Return
- /* /// */
- /* /// BusyHandle(text, currentOBJ, currentNUM)
- */
- BusyHandle:
- /*
- ** Open the MUI busy requester
- */
- PARSE ARG text,maxOBJ,currentOBJ,maxNUM,currentNUM
-
- Set("muiBusyGaugeOBJ", "CURRENT", currentOBJ)
- Set("muiBusyGaugeOBJ", "INFOTEXT", Trunc(100*currentOBJ/maxOBJ) ||"%")
- Set("muiBusyGaugeNUM", "CURRENT", currentNUM)
- Set("muiBusyGaugeNUM", "INFOTEXT", Trunc(100*currentNUM/maxNUM) ||"%")
-
- /*
- ** this is the standard cycle to handle an application
- */
- ctrl_C = 2**12
- s = 0
- Call Handle("muiApp", "H", s)
- DO i = 0 TO (H.num - 1)
- id = H.i
- SELECT
- WHEN (id = "BUSY_CANCEL")
- THEN DO
- userCancel = 1
- END
- END
- END
- s = Wait( OR(h.signals, ctrl_C) )
- IF (AND(s, ctrl_C) ~= 0)
- THEN EXIT
- Return userCancel
- /* /// */
- /* /// BusyOpen(title, totalOBJ, totalNUM)
- */
- BusyOpen:
- /*
- ** Open the MUI busy requester
- */
- userCancel = 0
- PARSE ARG title,totalOBJ,totalNUM
-
- /*
- ** let's define the window
- */
-
- muiBusyWin.ID = "BUSY"
- muiBusyWin.Title = pgsName
- muiBusyWin.Contents = "muiBusyGroup"
-
- /*
- ** let's define the window contents
- */
- muiBusyGroup.0 = "muiBusyGroup0"
- muiBusyGroup0.Class = "GROUP"
- muiBusyGroup0.Frame = "GROUP"
- muiBusyGroup0.Horiz = 0
- muiBusyGroup0.0 = Label(title, "CENTERED")
- muiBusyGroup0.1 = "muiBusyGaugeNUM"
- muiBusyGaugeNUM.Class = "GAUGE"
- muiBusyGaugeNUM.Frame = "GAUGE"
- muiBusyGaugeNUM.Horiz = 1
- muiBusyGaugeNUM.InfoText = ""
- muiBusyGaugeNUM.Max = totalNUM
- muiBusyGaugeNUM.Current = 0
- muiBusyGaugeNUM.FIXHEIGHTTXT = 1
- muiBusyGroup0.2 = "muiBusyGaugeOBJ"
- muiBusyGaugeOBJ.Class = "GAUGE"
- muiBusyGaugeOBJ.Frame = "GAUGE"
- muiBusyGaugeOBJ.Horiz = 1
- muiBusyGaugeOBJ.InfoText = ""
- muiBusyGaugeOBJ.Max = totalOBJ
- muiBusyGaugeOBJ.Current = 0
- muiBusyGaugeOBJ.FIXHEIGHTTXT = 1
- muiBusyGroup0.3 = VSpace()
- muiBusyGroup0.4 = Button("BUSY_CANCEL", "_Cancel")
-
- /*
- ** Busy Cancel Button...
- */
- Call Notify("BUSY_CANCEL", "PRESSED", 0, "muiApp", "SETVAR", "userCancel")
-
- /*
- ** generate new window object
- */
- res = NewObj("WINDOW","muiBusyWin",,1)
- IF (res ~= 0)
- THEN Call err(res)
- muiBusyWinOpen = TRUE
-
- /*
- ** Set active gadget at start
- */
- Call Set("muiBusyWin", "ActiveObject", "BUSY_CANCEL")
-
- /*
- ** Add window to application
- */
- Call Add("muiApp", "muiBusyWin")
-
- Call Set("muiBusyWin", "OPEN", 1)
- Call GetAttr("muiBusyWin", "OPEN", "o")
- IF (o = 0)
- THEN DO
- Say "can't open busy window!"
- Call ErrorRequester("Can't open busy window! -> Exiting", "Sorry...")
- Call CleanUp
- END
- Return 1
- /* /// */
-
- /* /// ON SYNTAX
- */
- SYNTAX:
- f = rc
- str = "*-------------------------------------------*"
- str = str || '|' || "* Syntax Error in line "|| sigl
- str = str || '|' || "* "|| f ||":" ErrorText(f)
- str = str || '|' || "*-------------------------------------------*"
-
- /*
- ** Unlock PageStream and QUIT
- */
- ADDRESS 'PAGESTREAM'
- 'LOCKINTERFACE FALSE'
- 'REFRESH ON'
- 'REFRESHWINDOW WINDOW "'|| oldWinName ||'"'
- ''defmeasure''
-
- Call pgsRequester(str)
-
- IF (f = 15)
- THEN DO
- Call pgsRequester('You should consider to register rxMUI.|Looks like the trial time is over.')
- END
-
- EXIT
- /* /// */
-
-